package br.com.controlador;

import br.com.modelo.Caixa;
import br.com.modelo.Operador;
import dadosUsuarioLogado.UsuarioLogado;
import java.io.Serializable;
import java.sql.Connection;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import util.JPAUtil;

/**
 *
 * @author gilberto 09/03/2012 19:46
 */
@ManagedBean
@ViewScoped
public class AlteraSenha implements Serializable {

    private String senhaAtual = "";
    private String novaSenha = "";
    private String repeteSenha = "";

    /**
     * @return the novaSenha
     */
    public String getNovaSenha() {
        return novaSenha;
    }

    /**
     * @param novaSenha the novaSenha to set
     */
    public void setNovaSenha(String novaSenha) {
        this.novaSenha = novaSenha;
    }

    /**
     * @return the repeteSenha
     */
    public String getRepeteSenha() {
        return repeteSenha;
    }

    /**
     * @param repeteSenha the repeteSenha to set
     */
    public void setRepeteSenha(String repeteSenha) {
        this.repeteSenha = repeteSenha;
    }

    public void alteraSenha() {
        try {
            Operador usuario = UsuarioLogado.retornaUsuarioLogado();
            if (usuario.getSenha().toString().equalsIgnoreCase(senhaAtual)) {
                if (novaSenha.toString().equalsIgnoreCase(repeteSenha.toString())) {
                    usuario.setSenha(novaSenha);
                    usuario = usuario.salvar();
                    //retornando caixas e salvando nos caixas
                    List<Caixa> caixa = CaixaControler.retornaCaixa();
                    for (Caixa c : caixa) {
                        Connection con = JPAUtil.conectaBanco(c.getIp());
                        if (con != null) {
                            usuario = usuario.salvarCaixas(c.getIp());
                            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Transferido para caixa(" + c.getNome() + ")", "Mensagem"));
                        }
                    }
                    novaSenha = "";
                    repeteSenha = "";
                    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Senha Atualizada!!", "Mensagem"));
                } else {
                    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Nova senha não confere!!", "Mensagem"));
                }
            } else {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Senha Atual não confere!!", "Mensagem"));
            }
        } catch (Exception e) {
        }
    }

    /**
     * @return the senhaAtual
     */
    public String getSenhaAtual() {
        return senhaAtual;
    }

    /**
     * @param senhaAtual the senhaAtual to set
     */
    public void setSenhaAtual(String senhaAtual) {
        this.senhaAtual = senhaAtual;
    }
}
